Sqlite在Android中的简单使用
说到Android中的数据存储方式,听人说有5种 其实具体有几种寡人不甚清楚,无所谓,爱有几种要几种
让我来缕一缕到底有几种方式吧 shit
本篇文章讲述如何利用Android内置数据库sqlite进行数据的存储
说到数据库就要说到SQLiteOpenHelper这个类了,在Android开发中利用SQLiteOpenHelper实现数据库的增删改查操作
让我们看看如何实例化这个类
主要的方法就是增删改查,当然还有一个创建一个数据库和表
类创建完之后就是使用了,上边看到了,为了方便,我们使用了一个person类
方法在Activity中的使用
public class MainActivity extends AppCompatActivity { private EditText nameBox, ageBox, heightBox, idBox; private TextView showText; private PersonDbOpenHelper dbHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化控件 nameBox = (EditText) findViewById(R.id.editText_name); ageBox = (EditText) findViewById(R.id.editText_age); heightBox = (EditText) findViewById(R.id.editText_height); idBox = (EditText) findViewById(R.id.editText_id); showText = (TextView) findViewById(R.id.textView_show); // 生成Helper对象 dbHelper = new PersonDbOpenHelper(this); } /* * 注意:因没有进行容错处理,需要正确输入数据,否则会报异常 */ public void buttonClick(View v) { Person p; switch(v.getId()) { //插入一条数据 case R.id.button_addData: String age = ageBox.getText().toString().trim(); String height = heightBox.getText().toString().trim(); String name = nameBox.getText().toString().trim(); p = new Person(); if((StringUtils.isEmpty(age))||(StringUtils.isEmpty(height))||(StringUtils.isEmpty(name))){ Toast.makeText(MainActivity.this,'请输入完整',Toast.LENGTH_SHORT).show(); return; } if(!StringUtils.isUsualCharacter(name)){ Toast.makeText(MainActivity.this,'请输入平常字符',Toast.LENGTH_SHORT).show(); return; } if(!StringUtils.isNumeric(age)){ Toast.makeText(MainActivity.this,'请输入整数',Toast.LENGTH_SHORT).show(); return; } p.setAge(Integer.parseInt(age)); p.setHeight(Float.parseFloat(height)); p.setName(name); dbHelper.insert(p); break; //查询所有 case R.id.button_showAll: List<Map<String, Object>> list = dbHelper.queryAll(); showText.setText(list.toString()); break; //清楚显示数据 case R.id.button_clear: showText.setText(null); break; //删除所有数据 case R.id.button_deleteAll: dbHelper.deleteAll(); break; //根据id进行查找 case R.id.button_queryById: String id = idBox.getText().toString().trim(); if(!StringUtils.isNumeric(id)){ Toast.makeText(MainActivity.this,'请输入数字',Toast.LENGTH_SHORT).show(); return; } p = dbHelper.queryById(Integer.parseInt(id)); showText.setText(p.toString()); break; //根据id进行更新 case R.id.button_updateById: String age_update = ageBox.getText().toString().trim(); String height_update = heightBox.getText().toString().trim(); String name_update = nameBox.getText().toString().trim(); String id_update = idBox.getText().toString().trim(); p = new Person(); if((StringUtils.isEmpty(age_update))||(StringUtils.isEmpty(height_update))||(StringUtils.isEmpty(name_update))){ Toast.makeText(MainActivity.this,'请输入完整',Toast.LENGTH_SHORT).show(); return; } if(!StringUtils.isNumeric(id_update)){ Toast.makeText(MainActivity.this,'请输入数字',Toast.LENGTH_SHORT).show(); return; } if(!StringUtils.isUsualCharacter(name_update)){ Toast.makeText(MainActivity.this,'请输入平常字符',Toast.LENGTH_SHORT).show(); return; } if(!StringUtils.isNumeric(age_update)){ Toast.makeText(MainActivity.this,'请输入整数',Toast.LENGTH_SHORT).show(); return; } p.setAge(Integer.parseInt(age_update)); p.setHeight(Float.parseFloat(height_update)); p.setName(name_update); p.setId(Integer.parseInt(id_update)); dbHelper.updateById(p); break; //根据id进行删除 case R.id.button_deleteById: String id_delete = idBox.getText().toString().trim(); if(!StringUtils.isNumeric(id_delete)){ Toast.makeText(MainActivity.this,'请输入数字',Toast.LENGTH_SHORT).show(); return; } dbHelper.deleteById(Integer.parseInt(id_delete)); break; } } } //为了防止插入数据报错,进行了容错处理相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/sqlite/10587.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
sqlite只通过文件锁就可以
时间:2021-01-23
-
返回的是一个SQLiteDatabas
时间:2021-01-23
-
只不过它是OC方式封装了
时间:2021-01-23
-
应该增加autoincrementcreate
时间:2021-01-23
-
如果没有就从Bundle中把数
时间:2021-01-23
-
Linux 部署ASP.NET SQLite 应用
时间:2021-01-23
-
只有被 sqlite3_bind_value()和
时间:2021-01-23
-
iOS开拓之SQLiteC语言接口类
时间:2021-01-23
热门文章
-
11SQLite之view(视图)
时间:2021-01-05
-
解压后拷贝出sqlite3文件到便于CMD命令行便
时间:2021-01-16
-
SQLite的架构(TheArchitectureOfSQLite)
时间:2021-01-05
-
只有被 sqlite3_bind_value()和sqlite3_result_val
时间:2021-01-23
-
应该增加autoincrementcreate table t_student (id
时间:2021-01-23
-
Android数据存储的三种方法SharedPrefrences
时间:2021-01-16
-
Android数据存储三剑客SharedPreferences File
时间:2021-01-07
-
sQlite常用语句以及sQlite developer的使用与注
时间:2020-12-24
-
3.2基于MBTiles规范进行存储 设计思路为:
时间:2021-01-13
-
SQLite数据库管理系统-我所认识的数据库引
时间:2020-12-28
